﻿<?php
/**
 * Classe Db da tabela TB_OBITO
 * 
 * @author			Mário R. Castro
 * @copyright		Voitech Sistema
 * @package			SEMAS
 * @subpackage		semas.application.models.Db
 * @version			1.0
*/
class App_Model_Db_Obito extends Voitech_Db{

	protected $_name 		= 'tb_obito';
    protected $_primary 	= 'co_obito';
	
	static private $instancia;

	/**
	 * @return App_Model_Db_NotaFiscalItem
	 */
	static public function build() {
		if( !isset( self::$instancia ) ) {
			$classe = __CLASS__;
			self::$instancia = new $classe();
		}
		return self::$instancia;
	}
	
	public function listarTodos(Voitech_TO $obTO=null){
            $obSelect = $this->getAdapter()->select()
			            				   ->from(array('tb_pessoa'=>'tb_pessoa') )
                                       ->columns(array(
												        'co_pessoa'=>'tb_pessoa.co_pessoa',
												        'nu_cpf'=>'tb_pessoa.nu_cpf',
												        'nu_rg'=>'tb_pessoa.nu_rg',
												        'no_pessoa'=>'tb_pessoa.no_pessoa',
												        'no_rg_emissor'=>'tb_pessoa.no_rg_emissor',
												        'sg_uf_rg_emissor'=>'tb_pessoa.sg_uf_rg_emissor',
												        'dt_nascimento'=>'tb_pessoa.dt_nascimento',
												        'no_endereco'=>'tb_pessoa.no_endereco',
												        'no_complemento'=>'tb_pessoa.no_complemento',
												        'no_bairro'=>'tb_pessoa.no_bairro',
												        'co_cidade'=>'tb_pessoa.co_cidade',
												        'co_estado_civil'=>'tb_pessoa.co_estado_civil',
												        'co_sexo'=>'tb_pessoa.co_sexo',
												        'sg_uf'=>'tb_pessoa.sg_uf',
                                       					'st_status'=>'tb_pessoa.st_status',                                   
			            				 		   		   'dt_cadastro_pessoa'=>'tb_pessoa.dt_cadastro',
					            				 		   'no_cidade'=>'tb_cidade.no_cidade',
					            				 		   'no_estado_civil'=>'tb_civil.no_estado_civil',
					            				 		   'no_sexo'=>'tb_sexo.no_sexo',
			            				 		   			'fl_excluir' => '(CASE 
																			    WHEN (SELECT count(*) FROM tb_cemiterio WHERE tb_cemiterio.co_pessoa = tb_pessoa.co_pessoa) > 0 THEN
																			    	\'N\'
																			    WHEN (SELECT count(*) FROM tb_medico WHERE tb_medico.co_pessoa = tb_pessoa.co_pessoa) > 0 THEN
																			    	\'N\'
																			    WHEN (SELECT count(*) FROM tb_funcionario WHERE tb_funcionario.co_pessoa = tb_pessoa.co_pessoa) > 0 THEN
																			    	\'N\'
																			    WHEN (SELECT count(*) FROM tb_funcionario WHERE tb_funcionario.co_pessoa = tb_pessoa.co_pessoa) > 0 THEN
																			    	\'N\'			
																			    ELSE
																			    	\'S\'
																		  END)'
			            				 		   		
                                                  ))
			            				 	->joinLeft(array('tb_cidade'=>'tb_param_cidade'),'tb_cidade.co_cidade = tb_pessoa.co_cidade')
			            				 	->joinLeft(array('tb_civil'=>'tb_param_estado_civil'),'tb_civil.co_estado_civil = tb_pessoa.co_estado_civil')	   		
			            					->joinLeft(array('tb_sexo'=>'tb_param_sexo'),'tb_sexo.co_sexo = tb_pessoa.co_sexo');

            if( !empty( $obTO->co_pessoa ) ) {
                $obSelect->where('co_pessoa =?', $obTO->co_pessoa);
            }
            if( !empty( $obTO->no_pessoa ) ) {
                $obSelect->where('no_pessoa like ?', "%".$obTO->no_pessoa."%");
            }
	        if( !empty( $obTO->nu_cpf ) ) {
                $obSelect->where('nu_cpf like ?', "%".$obTO->nu_cpf."%");
            }
            if( !empty( $obTO->st_status ) ) {
                $obSelect->where('st_status =?', $obTO->st_status);
            }
            return $this->getAdapter()->fetchAll($obSelect);			   						   
	}		
	
}